Department of Spatial Planning
Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later.
https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control
It allows you to:
Using a VCS also generally means that if you screw things up or lose files, you can easily recover. In addition, you get all this for very little overhead.
Many people’s version-control method of choice is to copy files into another directory (perhaps a time-stamped directory, if they’re clever). This approach is very common because it is so simple, but it is also incredibly error prone. It is easy to forget which directory you’re in and accidentally write to the wrong file or copy over files you don’t mean to.
To deal with this issue, programmers long ago developed local VCSs that had a simple database that kept all the changes to files under revision control.
Clients have a single central copy of a project on a server.
The problem is if the hard disk the central database is on becomes corrupted, and proper backups haven’t been kept, programmer loses absolutely everything — the entire history of the project except whatever single snapshots people happen to have on their local machines.
Examples of such system are SVN (Subversion),CVS, Perforce
Delta-based version control
With distributed version control systems (DVCS), you don’t rely on a central server to store all the versions of a project’s files. Instead, you clone a copy of a repository locally so you have the full history of the project.
Thus, if any server dies, and these systems were collaborating via that server, any of the client repositories can be copied back up to the server to restore it. In DVCS most operations are executed locally!
Two common distributed version control systems are Git and Mercurial.
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency
Git thinks about data more like stream of snapshots
You can’t commit changes that are not staged
GitHub, Inc. is a platform and cloud-based service for software development and version control using Git, allowing developers to store and manage their code. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continuous integration, and wikis for every project.
As of January 2023, GitHub reported having over 100 million developers and more than 372 million repositories, including at least 28 million public repositories. It is the world’s largest source code host as of June 2023.